package edu.zut.cs.javaee.manager.checkwork.service.impl;

 

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers;
import org.springframework.data.domain.ExampleMatcher.StringMatcher;
import org.springframework.stereotype.Service;

import edu.zut.cs.javaee.manager.base.service.impl.GenericTreeManagerImpl;
import edu.zut.cs.javaee.manager.checkwork.dao.CheckWorkDao;
import edu.zut.cs.javaee.manager.checkwork.domain.CheckWork;
import edu.zut.cs.javaee.manager.checkwork.service.CheckWorkManager;
 
 /**
  * 
  * @author 123
  *
  */
@Service("CheckWorkManager")
@Transactional
public class CheckWorkManagerImpl extends GenericTreeManagerImpl<CheckWork, Long> implements CheckWorkManager { 
              CheckWorkDao checkworkdao;
              
              @Autowired
              public void setGroupDao(CheckWorkDao checkworkdao) {
                  this.checkworkdao = checkworkdao;
                  this.treeDao = this.checkworkdao;
                  this.dao = this.treeDao;
              }
              
              @Override
              public List<CheckWork> findByName(String fullname) {
          		// 创建查询条件数据对象
          		CheckWork queryObject = new CheckWork();
          		queryObject.setName(fullname);
          		// 创建匹配器，即如何使用查询条件
          		ExampleMatcher matcher = ExampleMatcher.matching() // 构建对象
          				.withStringMatcher(StringMatcher.CONTAINING) // 改变默认字符串匹配方式：模糊查询
          				.withMatcher("fullname", GenericPropertyMatchers.contains()) // 姓名采用“开始匹配”的方式查询
          				.withIgnorePaths("dateCreated", "dateModified"); // 忽略属性：是否关注。因为是基本类型，需要忽略掉
          		// 创建实例并查询
          		Example<CheckWork> ex = Example.of(queryObject, matcher);
          		List<CheckWork> result = this.checkworkdao.findAll(ex);
          		return result;
          	}


			
			 
             
}
